package top.wilsonlv.jaguar.cloud.upms.controller.dto;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Set;

/**
 * @author lvws
 * @since 2021/11/9
 */
public interface OAuthClientBaseDTO {

    @NotBlank(message = "客户端ID为非空")
    String getClientId();

    void setClientId(String clientId);

    @NotNull(message = "是否第三方为非空")
    Boolean getThirdParty();

    void setThirdParty(Boolean thirdParty);

    @NotEmpty(message = "授权类型为非空")
    Set<String> getAuthorizedGrantTypes();

    void setAuthorizedGrantTypes(Set<String> authorizedGrantTypes);

    @NotNull(message = "accessToken有效期为非空")
    Integer getAccessTokenValiditySeconds();

    void setAccessTokenValiditySeconds(Integer accessTokenValiditySeconds);

    @NotNull(message = "refreshToken有效期为非空")
    Integer getRefreshTokenValiditySeconds();

    void setRefreshTokenValiditySeconds(Integer refreshTokenValiditySeconds);

    @NotEmpty(message = "授权范围为非空")
    Set<String> getScope();

    void setScope(Set<String> scope);

    Set<String> getAutoApproveScopes();

    void setAutoApproveScopes(Set<String> autoApproveScopes);

    @NotEmpty(message = "资源ID为非空")
    Set<String> getResourceIds();

    void setResourceIds(Set<String> resourceIds);

    Set<String> getRegisteredRedirectUri();

    void setRegisteredRedirectUri(Set<String> registeredRedirectUri);

    @NotNull(message = "是否启用为非空")
    Boolean getEnable();

    void setEnable(Boolean enable);

}
